package cn.wolfcode.wolfcodemall.service;

import cn.wolfcode.wolfcodemall.domain.ProductOrder;
import cn.wolfcode.wolfcodemall.domain.ProductOrderItem;
import cn.wolfcode.wolfcodemall.qo.PageQo;
import com.github.pagehelper.PageInfo;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

public interface OrderService {
    //保存订单
    void createOrderByOne(ProductOrder productOrder, ProductOrderItem productOrderItem,Integer userId);

    //根据订单id查询订单信息
    ProductOrder findProductOrderByOrderId(Integer orderId);

    //订单支付
    void orderPay(Integer orderId);

    //根据用户id查询订单信息
    PageInfo<ProductOrder> selectOrderByUserId(PageQo qo,Integer userId,Integer status);

    //加入购物车
    void addCart(Integer productId,Short productNumber,Integer userId);

    //查询购物车信息
    List<ProductOrderItem> findCart(Integer userId);

    //修改购物车商品数量
    void changeOrderItemNumber(Integer orderItemId,Short productNumber);

    //根据购物车项id查询购物车项信息
    ProductOrderItem findCartById(Integer orderItemId);

//    //根据商品信息id删除商品
    void deleteById(Integer orderItemId);

    //保存订单   多订单
    void createOrderByList(ProductOrder productOrder,String orderItemJSON,Integer userId);

    //保存全部订单
    List<ProductOrder> selectAll(Integer productOrderCode, Integer productOrderPost, List<Integer> productOrderStatus);

    //根据订单id查询订单信息
    ProductOrder selectById(Integer orderId);
    //根据订单项id删除订单
    int deleteByPrimaryKey( Integer productorderitemId);

    //根据订单关联id删除订单
    int logicDeleteByOrderId( Integer productOrderId,Integer orderStatus);


}
